#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdlib.h>

// 2、用进程相关API函数编写一个程序，使之产生一个进程链：进程派生一个子进程后，父进程然后打印出自己的PID，然后退出，该子进程继续派生子进程，然后打印PID，然后退出，以此类推。
// 要求：
// 1实现一个父进程要比子进程先打印PID的版本。（即打印的PID一般是递增的）
// 2实现一个子进程要比父进程先打印PID的版本。（即打印的PID一般是递减的）

int main()
{
    int count = 0;
    while (count < 5)
    {
        pid_t pid = fork();
        if (pid == -1)
        {
            perror("fork error");
            exit(1);
        }
        if (pid == 0)
        {
            // exit(0);
        }
        if (pid > 0)
        {
            wait(NULL);
            printf("Parent pid = %d (child pid = %d)\n", getpid(), pid);
            exit(0);
        }
        count++;
    }

    return 0;
}